🐧 Data Center Moderno: Ubuntu + AD + Stack DevOps

Guia completo (pt-PT) — Instalação de servidor Linux, Active Directory, Rancher, Calico, GPU Operator, Hermes JMS, Harbor Registry e Velero Backup

🐧 Ubuntu Server 24.04 LTS 🔐 Samba AD DC 🐳 Rancher + Kubernetes 🌐 Calico CNI 🎮 NVIDIA GPU Operator 📨 HermesJMS 📦 Harbor Registry 💾 Velero Backup

📖 Arquitetura Completa: Do AD à GPU na Nuvem

Este guia prático ensina a construção de uma plataforma completa para empresas modernas, integrando gestão de identidade (Active Directory), orquestração de containers (Kubernetes via Rancher), networking avançado (Calico), aceleração por GPU, mensageria JMS (Hermes), registo de imagens (Harbor) e backup resiliente (Velero). Tudo sobre Ubuntu Server.

🔐 Samba AD

Controlador de domínio para autenticação centralizada e gestão de utilizadores.

🐳 Rancher

Plataforma de gestão Kubernetes com UI intuitiva e segurança integrada.[citation:9]

🌐 Calico

CNI de alta performance com suporte a Network Policies e eBPF.[citation:10]

🎮 GPU Operator

Automatização de drivers NVIDIA e gestão de workloads GPU.[citation:4]

📨 HermesJMS

Ferramenta gráfica para testar filas JMS em ambientes empresariais.[citation:5]

📦 Harbor

Registry privado de containers com scanning de vulnerabilidades.[citation:6]

💾 Velero

Backup e restore de clusters Kubernetes com snapshots persistentes.[citation:7]

🎯 Pré-requisitos para seguir este guia:
  • Servidor físico ou VM com Ubuntu Server 24.04 LTS (mínimo 8GB RAM, 4 vCPUs, 100GB SSD).
  • Para GPU Operator: NVIDIA GPU compatível (ex: Tesla T4, A100, RTX).
  • Acesso à internet para download de pacotes e imagens Docker.
  • Conhecimentos básicos de terminal e administração Linux.
Resultado final: Um ambiente empresarial completo com autenticação AD, cluster Kubernetes gerido via Rancher, registo privado de imagens, capacidade GPU e backup automatizado.

🖥️ Passo 1: Servidor Ubuntu com Active Directory

Base de toda a infraestrutura: servidor Ubuntu e controlador de domínio Samba.

1.1 Instalação do Ubuntu Server

# Descarregar ISO do Ubuntu 24.04 LTS e instalar com as opções: - Idioma: Português (Portugal) ou English - OpenSSH Server: Sim - Utilizador administrador: criar (ex: "admin")

1.2 Configurar IP Fixo (Netplan)

sudo nano /etc/netplan/00-installer-config.yaml # Exemplo para IP fixo 192.168.1.100 network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] routes: - to: default via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] sudo netplan apply

1.3 Instalar Samba como Domain Controller

sudo apt update && sudo apt upgrade -y sudo hostnamectl set-hostname srvad.exemplo.pt echo "127.0.1.1 srvad.exemplo.pt srvad" | sudo tee -a /etc/hosts # Instalar pacotes sudo apt install -y samba krb5-user krb5-config winbind # Provisionar domínio (responder interativamente) sudo samba-tool domain provision --use-rfc2307 --interactive # Realm: EXEMPLO.PT # Domain: EXEMPLO # Server Role: dc # DNS backend: SAMBA_INTERNAL # Ativar serviço sudo systemctl unmask samba-ad-dc sudo systemctl enable samba-ad-dc sudo systemctl start samba-ad-dc
Verificação: sudo systemctl status samba-ad-dc e sudo smbclient -L localhost -N
📌 Integração Linux com AD: Para clientes Linux aderirem ao domínio, usar realm join --user=Administrador exemplo.pt após instalar pacotes realmd sssd adcli.[citation:1][citation:8]

☸️ Passo 2: Rancher Server e Cluster Kubernetes

Rancher simplifica a gestão de múltiplos clusters Kubernetes. Vamos instalar o Rancher via Docker e criar um cluster K3s ou RKE2.

2.1 Instalar Docker

curl -fsSL https://get.docker.com | sudo sh sudo usermod -aG docker $USER newgrp docker

2.2 Executar Rancher Server

sudo docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ --privileged \ rancher/rancher:latest # Acesso: https:// # Obter password inicial: sudo docker logs 2>&1 | grep "Bootstrap Password"

2.3 Criar Cluster Kubernetes via Rancher UI

1. Aceder a https://:443 2. Definir password admin 3. Em "Cluster Management" -> "Create Cluster" 4. Escolher "Custom" (para nós Ubuntu existentes) 5. Dar nome ao cluster (ex: "prod-cluster") 6. Copiar comando docker run gerado e executar em cada nó worker
🔗 Alternativa: Para instalação rápida K3s: curl -sfL https://get.k3s.io | sh - e depois importar via Rancher.[citation:9]

🌐 Passo 3: Instalar Calico como CNI

Calico oferece networking de alto desempenho, Network Policies e suporte a eBPF.[citation:3][citation:10]

3.1 Verificar versão Kubernetes

kubectl version --short

3.2 Instalar Operator do Calico

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28/manifests/tigera-operator.yaml kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28/manifests/custom-resources.yaml

3.3 Verificar instalação

kubectl get pods -n calico-system # Esperar até todos os pods em Running kubectl get nodes -o wide
⚠️ Atenção: Se o cluster foi inicializado com kubeadm, use --pod-network-cidr=192.168.0.0/16 no init para compatibilidade com Calico.[citation:10]

🎮 Passo 4: NVIDIA GPU Operator

Automatiza a instalação de drivers e ferramentas CUDA nos nós com GPUs NVIDIA.[citation:4]

4.1 Pré-requisitos (nó com GPU)

# Verificar se GPU é detetada pelo sistema lspci | grep -i nvidia # Instalar device plugin runtime sudo apt install -y nvidia-container-toolkit

4.2 Instalar GPU Operator via Helm

helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo update helm install --wait --generate-name \ -n gpu-operator --create-namespace \ nvidia/gpu-operator

4.3 Validar instalação

kubectl get pods -n gpu-operator kubectl logs -n gpu-operator-resources -l app=nvidia-operator-validator # Procurar: "all validations are successful"[citation:4]
🚀 Teste com workload GPU:
kubectl run gpu-test --rm -it --restart=Never --image=nvidia/cuda:12.0-base -- nvidia-smi

📨 Passo 5: HermesJMS para Teste de Filas JMS

HermesJMS é uma ferramenta gráfica para inspecionar e enviar mensagens para filas JMS (ActiveMQ, IBM MQ, SAP PO).[citation:5]

5.1 Instalação no Ubuntu Desktop (ou servidor com X11)

# Descarregar HermesJMS (versão incluída no SoapUI) wget https://www.soapui.org/downloads/soapui/ -O soapui-latest.sh chmod +x soapui-latest.sh ./soapui-latest.sh # O Hermes estará em /opt/SoapUI-/hermesJMS/ cd /opt/SoapUI-*/hermesJMS/bin ./hermes.sh

5.2 Configurar sessão para ActiveMQ/SAP PO

No Hermes: 1. Criar nova sessão 2. Em "Providers" -> Adicionar grupo -> Adicionar JARs (clientes JMS específicos) 3. Configurar ConnectionFactory com JNDI 4. Adicionar filas (Queues) para teste 5. Enviar mensagens de texto ou XML para validação[citation:5]
💡 Caso de uso: Hermes permite testar integrações empresariais sem necessidade de aplicações completas, validando conectividade e formato de mensagens.

📦 Passo 6: Harbor Registry Privado

Harbor é um registry de containers com segurança, scanning e replicação geo-distribuída.[citation:6]

6.1 Instalar Harbor via Helm no Kubernetes

helm repo add harbor https://helm.goharbor.io helm upgrade --install harbor harbor/harbor \ --namespace harbor --create-namespace \ --set expose.type=nodePort \ --set expose.tls.enabled=false \ --set persistence.enabled=true

6.2 Aceder e configurar

# Obter URL do Harbor kubectl get svc -n harbor # Aceder a http://:30002 # Login: admin / Harbor12345 # Criar projeto (ex: "empresa")

6.3 Fazer login e push de imagens

docker login :30002 -u admin docker tag nginx:latest :30002/empresa/nginx:latest docker push :30002/empresa/nginx:latest
🔒 Para produção, configure HTTPS com certificados válidos e ative o scanning de vulnerabilidades do Harbor.

💾 Passo 7: Velero Backup e Restore de Kubernetes

Velero permite backup de recursos e volumes persistentes para object storage (S3, MinIO, GCS).[citation:7]

7.1 Instalar MinIO (backend S3 local)

helm repo add minio https://charts.min.io helm upgrade --install minio minio/minio \ --namespace velero --create-namespace \ --set rootUser=minioadmin \ --set rootPassword=minioadmin123 \ --set buckets[0].name=velero,buckets[0].policy=none

7.2 Instalar Velero CLI

wget https://github.com/vmware-tanzu/velero/releases/download/v1.14.1/velero-v1.14.1-linux-amd64.tar.gz tar -xzf velero-v1.14.1-linux-amd64.tar.gz sudo mv velero-v1.14.1-linux-amd64/velero /usr/local/bin/

7.3 Configurar credentials e instalar Velero

cat > credentials-velero << EOF [default] aws_access_key_id = minioadmin aws_secret_access_key = minioadmin123 EOF velero install \ --provider aws \ --plugins velero/velero-plugin-for-aws:v1.10.0 \ --bucket velero \ --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000 \ --snapshot-location-config region=minio \ --secret-file ./credentials-velero

7.4 Criar backup e restaurar

# Backup de namespace "aplicacao" velero backup create app-backup --include-namespaces aplicacao # Verificar status velero backup describe app-backup # Simular disaster recovery kubectl delete namespace aplicacao velero restore create --from-backup app-backup
Backup agendado: velero schedule create daily-backup --schedule="0 2 * * *" --include-namespaces aplicacao

🔗 Passo 8: Integração de todos os componentes

Com todos os componentes instalados, temos uma stack empresarial completa:

ComponenteFunçãoInteração
Samba ADAutenticaçãoUtilizadores do domínio acedem aos recursos Kubernetes via RBAC integrado com LDAP
Rancher + CalicoOrquestração e RedeRancher gere clusters multi-cloud, Calico assegura Network Policies e segurança pod-to-pod
GPU OperatorAceleração IA/MLWorkloads de ML (PyTorch, TensorFlow) utilizam GPUs transparentemente
HarborRegistryArmazena imagens seguras; scanning evita vulnerabilidades em produção
HermesJMSTeste de mensageriaValida filas JMS para aplicações legadas ou microsserviços
VeleroBackup DRBackups diários do cluster e volumes para MinIO S3

Fluxo de trabalho recomendado

1. Desenvolvedor faz login no Harbor (via AD) e push de imagem 2. Pipeline CI/CD (GitLab/Jenkins) atualiza deployment no Rancher 3. Calico garante isolamento de namespaces com Network Policies 4. Velero faz backup de todo o cluster para MinIO 5. Workloads de GPU usam operador para acesso transparente às GPUs 6. HermesJMS valida integrações JMS com sistemas externos
📚 Recursos oficiais para aprofundamento:
- Samba AD: wiki.samba.org
- Rancher Docs: docs.rancher.com
- Calico Enterprise: tigera.io
- NVIDIA GPU Operator: docs.nvidia.com
- Harbor Project: goharbor.io
- Velero: velero.io
🎉 Parabéns! Agora dispõe de uma plataforma empresarial de topo, desde a gestão de identidade até workloads acelerados por GPU e backup resiliente, tudo sobre Ubuntu e software open-source.